import request from '@/config/axios'
import type { Dayjs } from 'dayjs';

/** 课程信息信息 */
export interface Course {
  courseId?: number; // 课程ID (注意：前端number类型可以处理Long)
  courseCode?: string; // 课程编码
  courseName?: string; // 课程名称
  groupId?: number; // 所属学科组ID
  courseType?: string; // 课程类型
  courseCategory?: string; // 课程类别
  creditHours?: number; // 课程学时
  theoryHours?: number; // 理论学时
  practiceHours?: number; // 实践学时
  credits?: number; // 学分
  prerequisiteCourses?: string; // 先修课程ID序列
  description?: string; // 课程描述
  objectives?: string; // 课程目标
  status?: number; // 状态（0=禁用 1=启用）
  createTime?: string; // 创建时间
}

// 课程信息 API
export const CourseApi = {
  // 查询课程信息分页
  getCoursePage: async (params: any) => {
    return await request.get({ url: `/ao/course/page`, params })
  },

  // 查询课程信息详情
  getCourse: async (id: number) => {
    return await request.get({ url: `/ao/course/get?id=` + id })
  },

  // 新增课程信息
  createCourse: async (data: Course) => {
    return await request.post({ url: `/ao/course/create`, data })
  },

  // 修改课程信息
  updateCourse: async (data: Course) => {
    return await request.put({ url: `/ao/course/update`, data })
  },

  // 删除课程信息
  deleteCourse: async (id: number) => {
    return await request.delete({ url: `/ao/course/delete?id=` + id })
  },

  /** 批量删除课程信息 */
  deleteCourseList: async (ids: number[]) => {
    return await request.delete({ url: `/ao/course/delete-list?ids=${ids.join(',')}` })
  },

  // 导出课程信息 Excel
  exportCourse: async (params) => {
    return await request.download({ url: `/ao/course/export-excel`, params })
  },
}
